home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / OpenGL 1.0 SDK / Source / Libraries / tk / tkcursor.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-18  |  938 b   |  50 lines  |  [TEXT/CWIE]

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "tk.h"
  5. #include "tkprivate.h"
  6.  
  7. #define MAX_CURSOR 32
  8.  
  9. typedef struct cursorRec {
  10.     GLint        id;
  11.     Cursor    cursor;
  12. } cursorRec;
  13.  
  14. static int            cursor_num = 0;
  15. static cursorRec    cursors[MAX_CURSOR];
  16.  
  17. void tkNewCursor(GLint id, GLubyte *shapeBuf, GLubyte *maskBuf, GLenum fgColor,
  18.                          GLenum bgColor, GLint hotX, GLint hotY)
  19. {
  20.     int i;
  21.     
  22.     if(cursor_num == MAX_CURSOR-1) return;
  23.     
  24.     cursors[cursor_num].id = id;
  25.     
  26.     for (i = 0; i< 16; i ++)
  27.     {
  28.         cursors[cursor_num].cursor.data[i]    = shapeBuf[i * 2] << 8 | shapeBuf[i * 2 + 1];
  29.         cursors[cursor_num].cursor.mask[i]    = maskBuf[i * 2] << 8 | maskBuf[i * 2 + 1];
  30.     }
  31.     
  32.     cursors[cursor_num].cursor.hotSpot.v = hotX;
  33.     cursors[cursor_num].cursor.hotSpot.h = hotY;
  34.     
  35.     cursor_num++;
  36. }
  37.  
  38. void tkSetCursor(GLint id)
  39. {
  40.     int i;
  41.  
  42.     for(i = 0; i < cursor_num; i++)
  43.     {
  44.         if(cursors[i].id == id)
  45.         {
  46.             SetCursor(&cursors[i].cursor);
  47.             break;
  48.         }
  49.     }
  50. }